In wireless communication systems including transmitters and receivers, antenna array beamforming provides increased signal quality (high directional antenna beamforming gain) and an extended communication range by steering the transmitted signal in a desired direction. To enable high throughput wireless links between a wireless transmitter and a wireless receiver over wireless channels, essentially optimal transmit and receive analog beamforming vectors (beamforming coefficients) should be acquired in advance.
In a multiple-input-multiple-output (MIMO) wireless communications system including a wireless transmitter and a wireless receiver, availability of accurate communication channel state information at the transmitter allows higher performance (e.g., throughput, operating range). Transmit beamforming uses the channel information for determining beamforming coefficients (beamforming/steering vectors) to properly steer the transmission beams for achieving higher performance. To calculate the beamforming vector for a specific receiver, the transmitter requires an accurate estimate of the communication channel. A beamforming transmitter sends a training sequence to the receiver wherein the receiver estimate channel information (e.g., response of a MIMO channel) based on the training symbols. The receiver provides feedback information about the channel to the transmitter. The feedback information includes channel matrices/vectors or beamforming coefficient matrices to be used by the transmitter for beam steering.
To eliminate channel estimation overhead, a codebook may be used to determine such coefficients, wherein the codebook includes predetermined set of possible coefficients. Specifically, the codebook includes a group of coefficient matrices (vectors) from which one matrix is selected to be a beamforming matrix used to perform beamforming. A codebook construction/design may be based on a Fourier matrix. Conventionally, choice of the row indices from the Fourier matrix in forming the codebook have been based generally on a numerical search in order to maximize a certain performance metric for a codebook size based on the number of transmit antennas and feedback bits from the receiver. Codebook construction/design may also involve in providing an optimal codebook for very limited choice of the number of transmit antennas and feedback bits from the receiver.